package com.starry.designPatterns.creatation.prototype;

/**
 * 原型模式 用于创建重复的对象 又能保证性能
 * 1、设计一个MyBatis：操作数据库,从数据库查询出来很多记录
 * 2、每次查询数据库,查到以后把所有的数据分装成一个对象,返回。
 *   10000 Thread: 查询一个记录:new User("zhangsan",18),每次创建一个对象并返回
 *   系统里面就会有10000 个User 浪费内存
 * 3、解决：缓存 查过的缓存
 *        如果再查相同的记录,拿到原来的原型对象
 *
 */
public class MainTest {

    public static void main(String[] args) throws CloneNotSupportedException {
        StarryMybatis mybatis = new StarryMybatis();
        User user = mybatis.getUser("zhangsan");
        user.setUsername("lisi");
        User user1 = mybatis.getUser("zhangsan");
        System.out.println(user1);


    }
}
